/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package gui;

import basicas.organizacionais.Funcionario;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import negocio.Fachada;

/**
 *
 * @author Jefferson
 */
@ManagedBean
public class FuncionarioBean {

    private Funcionario funcionario;
    private List<Funcionario> listFuncionario;
    private int codigoBusca;
    private String retornoHtml = "";

    public String getRetornoHtml() {
        return retornoHtml;
    }

    public void setRetornoHtml(String retornoHtml) {
        this.retornoHtml = retornoHtml;
    }
    
    public FuncionarioBean(){
        //recuperando parametros get
        HttpServletRequest request = (HttpServletRequest) 
        FacesContext.getCurrentInstance().getExternalContext().getRequest();
        String codigoFuncionario = request.getParameter("cfun");        
        
        //verifica se existe o parametro cfun
        if(codigoFuncionario != null){                        
            int codigo = Integer.parseInt(codigoFuncionario);
            
            //pesquisa o funcionario pelo codigo passado como parametro
            funcionario = Fachada.getInstancia().getFuncionarioByCodigo(codigo);                                    
        }else{
            //caso nao exista parametro estancia um novo funcionario
            funcionario = new Funcionario();
        }  
    }

     public void inserir(){                        
        try {     
                Fachada.getInstancia().inserirFuncionario(funcionario);
                retornoHtml = FuncoesStaticBean.mostraSucesso();                                
                funcionario = null;
        } catch (Exception e) {
                 retornoHtml = FuncoesStaticBean.mostraErro();
        }
    }
     
    public void alterar(){
        try {                
                Fachada.getInstancia().alterarFuncionario(funcionario);
                retornoHtml = FuncoesStaticBean.mostraSucesso();
        } catch (Exception e) {
                retornoHtml = FuncoesStaticBean.mostraErro();
        }
    }
    
    public void removerFuncionario(Funcionario funcionario){	        
        try {            
            Fachada.getInstancia().removerFuncionario(funcionario);
            retornoHtml = FuncoesStaticBean.mostraSucesso();
        } catch (Exception e) {
            retornoHtml = FuncoesStaticBean.mostraErro();
        }                		
    }

    public void buscar(){
        funcionario = Fachada.getInstancia().getFuncionarioByCodigo(codigoBusca);
    }
    public Funcionario getFuncionario() {
        return funcionario;
    }

    public void setFuncionario(Funcionario funcionario) {
        this.funcionario = funcionario;
    }

    public List<Funcionario> getListFuncionario() {
        listFuncionario = Fachada.getInstancia().listarFuncionarios();
        return listFuncionario;
    }

    public String alterarFuncionario(int cfun){		
        return "alterarfuncionario.xhml?faces-redirect=true&cfun=" + cfun;
    }   
    
    public void setListFuncionario(List<Funcionario> listFuncionario) {
        this.listFuncionario = listFuncionario;
    }

    public int getCodigoBusca() {
        return codigoBusca;
    }

    public void setCodigoBusca(int codigoBusca) {
        this.codigoBusca = codigoBusca;
    }

}
